grammar experiments;

startpoint:(Identifier|Decimal|Octonary|Hexadecimal|Symbol|Keyword)+;
Identifier :('A'..'Z'|'a'..'z')('A'..'Z'|'a'..'z'|'0'..'9')*(('_'|'.')('A'..'Z'|'a'..'z'|'0'..'9')+)?;
Decimal:(('1'..'9')('0'..'9')*|'0')('.'('0'..'9')+)?;
Octonary:'0'('0'..'7')+('.'('0'..'7')('0'..'7')+)?;
Hexadecimal:'0''x'('0'..'9'|'a'..'f')+('.'('0'..'9'|'a'..'f')('0'..'9'|'a'..'f')+)?;
Symbol:'+'|'-'|'*'|'/'|'>'|'<'|'='|'('|')'|';';
Keyword:'if '| 'then '| 'else '| 'while' | 'do';
WS : ( ' ' | '\t' | '\r' | '\n' ) ->skip;
/*
标识符			<字母>(<字母>|<数字字符>)*
	十进制整数		0 | (1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*
	八进制整数  	0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)*
		十六进制整数	0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)*
		运算符和分隔符	+ | - | * | / | > | < | = | ( | ) | ；
		关键字			if | then | else | while | do

标识符	 <字母>(<字母>|<数字字符>)*(ε|((_|.)(<字母>|<数字字符>)+))
十进制数 ((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*|0)(ε|(. (0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* ))
	八进制数 0( (0|1|2|3|4|5|6|7)+ (ε|(.(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)+))
HEXADE: 0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)* (ε|(. (0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)
(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)+))
*/
